Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others.
A storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems. The storage operating system stores and manages shared data containers in a set of mass storage devices.
Storage system hardware is expected provide fast access to stored data, often for multiple clients at once. As such, storage servers often have multiple components to carry out various tasks. These components can only increase flexibility and performance of a system if they are able to handle or preferably prevent conflicts, lock-ups, or the like among simultaneous actions by different components.
For example, a storage—or any other computer—system may include two or more baseboard management controllers (BMCs), which are specialized service processors that monitor the physical state of a computer, server, or other hardware component. BMCs monitor internal physical variables of a computing system, including, for example, temperature, humidity, power-supply voltage, fan speeds, and the like. A BMC can then report issues to a central processing unit (or an administrator) if parameters stray from particular norms.
BMCs often have to access shared resources, for example, system memory, power supply units, and others to monitor various system parameters. Typically, BMCs do not support a master-slave environment and hence two processors may be able to access the same storage space that stores information regarding monitored parameters. Continuous efforts are being made to improve communication between controllers in general and BMCs in particular.